// Generated from java-escape by ANTLR 4.11.1
package com.inspur.edp.common.expr.ast;
import org.antlr.v4.runtime.tree.ParseTreeVisitor;

/**
 * This interface defines a complete generic visitor for a parse tree produced
 * by {@link CompileUnitParser}.
 *
 * @param <T> The return type of the visit operation. Use {@link Void} for
 * operations with no return type.
 */
public interface CompileUnitVisitor<T> extends ParseTreeVisitor<T> {

	Object visitExpress(CompileUnitParser.ExpressContext ctx) ;

	/**
	 * Visit a parse tree produced by {@link CompileUnitParser#compileUnit}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitCompileUnit(CompileUnitParser.CompileUnitContext ctx);
	/**
	 * Visit a parse tree produced by {@link CompileUnitParser#compileUnitTypes}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitCompileUnitTypes(CompileUnitParser.CompileUnitTypesContext ctx);
	/**
	 * Visit a parse tree produced by {@link CompileUnitParser#importInfo}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitImportInfo(CompileUnitParser.ImportInfoContext ctx);
	/**
	 * Visit a parse tree produced by {@link CompileUnitParser#program}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitProgram(CompileUnitParser.ProgramContext ctx);
	/**
	 * Visit a parse tree produced by {@link CompileUnitParser#modifierKeyword}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitModifierKeyword(CompileUnitParser.ModifierKeywordContext ctx);
	/**
	 * Visit a parse tree produced by {@link CompileUnitParser#name}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitName(CompileUnitParser.NameContext ctx);
	/**
	 * Visit a parse tree produced by {@link CompileUnitParser#typeDeclaration}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitTypeDeclaration(CompileUnitParser.TypeDeclarationContext ctx);
	/**
	 * Visit a parse tree produced by {@link CompileUnitParser#genericTypeDeclaration}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitGenericTypeDeclaration(CompileUnitParser.GenericTypeDeclarationContext ctx);
	/**
	 * Visit a parse tree produced by {@link CompileUnitParser#extendDeclaration}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitExtendDeclaration(CompileUnitParser.ExtendDeclarationContext ctx);
	/**
	 * Visit a parse tree produced by {@link CompileUnitParser#implementsDeclaration}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitImplementsDeclaration(CompileUnitParser.ImplementsDeclarationContext ctx);
	/**
	 * Visit a parse tree produced by {@link CompileUnitParser#bodyDeclarations}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitBodyDeclarations(CompileUnitParser.BodyDeclarationsContext ctx);
	/**
	 * Visit a parse tree produced by {@link CompileUnitParser#fieldDeclaration}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitFieldDeclaration(CompileUnitParser.FieldDeclarationContext ctx);
	/**
	 * Visit a parse tree produced by {@link CompileUnitParser#constructorDeclaration}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitConstructorDeclaration(CompileUnitParser.ConstructorDeclarationContext ctx);
	/**
	 * Visit a parse tree produced by {@link CompileUnitParser#methodDeclaration}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitMethodDeclaration(CompileUnitParser.MethodDeclarationContext ctx);
	/**
	 * Visit a parse tree produced by {@link CompileUnitParser#parameterDeclarations}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitParameterDeclarations(CompileUnitParser.ParameterDeclarationsContext ctx);
	/**
	 * Visit a parse tree produced by {@link CompileUnitParser#parameterDeclaration}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitParameterDeclaration(CompileUnitParser.ParameterDeclarationContext ctx);
	/**
	 * Visit a parse tree produced by {@link CompileUnitParser#enumValues}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitEnumValues(CompileUnitParser.EnumValuesContext ctx);
	/**
	 * Visit a parse tree produced by {@link CompileUnitParser#enumValue}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitEnumValue(CompileUnitParser.EnumValueContext ctx);
	/**
	 * Visit a parse tree produced by {@link CompileUnitParser#decorator}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitDecorator(CompileUnitParser.DecoratorContext ctx);
	/**
	 * Visit a parse tree produced by {@link CompileUnitParser#decoratorItem}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitDecoratorItem(CompileUnitParser.DecoratorItemContext ctx);
	/**
	 * Visit a parse tree produced by the {@code arrayType}
	 * labeled alternative in {@link CompileUnitParser#type}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitArrayType(CompileUnitParser.ArrayTypeContext ctx);
	/**
	 * Visit a parse tree produced by the {@code referType}
	 * labeled alternative in {@link CompileUnitParser#type}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitReferType(CompileUnitParser.ReferTypeContext ctx);
	/**
	 * Visit a parse tree produced by the {@code voidType}
	 * labeled alternative in {@link CompileUnitParser#type}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitVoidType(CompileUnitParser.VoidTypeContext ctx);
	/**
	 * Visit a parse tree produced by the {@code genericType}
	 * labeled alternative in {@link CompileUnitParser#type}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitGenericType(CompileUnitParser.GenericTypeContext ctx);
	/**
	 * Visit a parse tree produced by the {@code primitiveType}
	 * labeled alternative in {@link CompileUnitParser#type}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitPrimitiveType(CompileUnitParser.PrimitiveTypeContext ctx);
	/**
	 * Visit a parse tree produced by the {@code stringType}
	 * labeled alternative in {@link CompileUnitParser#primitiveTypeEnum}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitStringType(CompileUnitParser.StringTypeContext ctx);
	/**
	 * Visit a parse tree produced by the {@code booleanType}
	 * labeled alternative in {@link CompileUnitParser#primitiveTypeEnum}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitBooleanType(CompileUnitParser.BooleanTypeContext ctx);
	/**
	 * Visit a parse tree produced by the {@code intType}
	 * labeled alternative in {@link CompileUnitParser#primitiveTypeEnum}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitIntType(CompileUnitParser.IntTypeContext ctx);
	/**
	 * Visit a parse tree produced by the {@code floatType}
	 * labeled alternative in {@link CompileUnitParser#primitiveTypeEnum}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitFloatType(CompileUnitParser.FloatTypeContext ctx);
	/**
	 * Visit a parse tree produced by the {@code doubleType}
	 * labeled alternative in {@link CompileUnitParser#primitiveTypeEnum}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitDoubleType(CompileUnitParser.DoubleTypeContext ctx);
	/**
	 * Visit a parse tree produced by the {@code longType}
	 * labeled alternative in {@link CompileUnitParser#primitiveTypeEnum}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitLongType(CompileUnitParser.LongTypeContext ctx);
	/**
	 * Visit a parse tree produced by the {@code anyType}
	 * labeled alternative in {@link CompileUnitParser#primitiveTypeEnum}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitAnyType(CompileUnitParser.AnyTypeContext ctx);
	/**
	 * Visit a parse tree produced by the {@code newExpr}
	 * labeled alternative in {@link CompileUnitParser#express}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitNewExpr(CompileUnitParser.NewExprContext ctx);
	/**
	 * Visit a parse tree produced by the {@code thisExpr}
	 * labeled alternative in {@link CompileUnitParser#express}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitThisExpr(CompileUnitParser.ThisExprContext ctx);
	/**
	 * Visit a parse tree produced by the {@code plusMinusPostExpr}
	 * labeled alternative in {@link CompileUnitParser#express}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitPlusMinusPostExpr(CompileUnitParser.PlusMinusPostExprContext ctx);
	/**
	 * Visit a parse tree produced by the {@code fieldAccessExpr}
	 * labeled alternative in {@link CompileUnitParser#express}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitFieldAccessExpr(CompileUnitParser.FieldAccessExprContext ctx);
	/**
	 * Visit a parse tree produced by the {@code plusMinusExpr}
	 * labeled alternative in {@link CompileUnitParser#express}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitPlusMinusExpr(CompileUnitParser.PlusMinusExprContext ctx);
	/**
	 * Visit a parse tree produced by the {@code simplifyMethodInvokeExpr}
	 * labeled alternative in {@link CompileUnitParser#express}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitSimplifyMethodInvokeExpr(CompileUnitParser.SimplifyMethodInvokeExprContext ctx);
	/**
	 * Visit a parse tree produced by the {@code nullValExpr}
	 * labeled alternative in {@link CompileUnitParser#express}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitNullValExpr(CompileUnitParser.NullValExprContext ctx);
	/**
	 * Visit a parse tree produced by the {@code typeCastExpr}
	 * labeled alternative in {@link CompileUnitParser#express}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitTypeCastExpr(CompileUnitParser.TypeCastExprContext ctx);
	/**
	 * Visit a parse tree produced by the {@code arrayValueExpr}
	 * labeled alternative in {@link CompileUnitParser#express}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitArrayValueExpr(CompileUnitParser.ArrayValueExprContext ctx);
	/**
	 * Visit a parse tree produced by the {@code assignValExpr}
	 * labeled alternative in {@link CompileUnitParser#express}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitAssignValExpr(CompileUnitParser.AssignValExprContext ctx);
	/**
	 * Visit a parse tree produced by the {@code methodInvokeExpr}
	 * labeled alternative in {@link CompileUnitParser#express}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitMethodInvokeExpr(CompileUnitParser.MethodInvokeExprContext ctx);
	/**
	 * Visit a parse tree produced by the {@code arrayAccessExpr}
	 * labeled alternative in {@link CompileUnitParser#express}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitArrayAccessExpr(CompileUnitParser.ArrayAccessExprContext ctx);
	/**
	 * Visit a parse tree produced by the {@code unaryMinusExpr}
	 * labeled alternative in {@link CompileUnitParser#express}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitUnaryMinusExpr(CompileUnitParser.UnaryMinusExprContext ctx);
	/**
	 * Visit a parse tree produced by the {@code numberValExpr}
	 * labeled alternative in {@link CompileUnitParser#express}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitNumberValExpr(CompileUnitParser.NumberValExprContext ctx);
	/**
	 * Visit a parse tree produced by the {@code compareExpr}
	 * labeled alternative in {@link CompileUnitParser#express}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitCompareExpr(CompileUnitParser.CompareExprContext ctx);
	/**
	 * Visit a parse tree produced by the {@code stringValExpr}
	 * labeled alternative in {@link CompileUnitParser#express}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitStringValExpr(CompileUnitParser.StringValExprContext ctx);
	/**
	 * Visit a parse tree produced by the {@code objectValueExpr}
	 * labeled alternative in {@link CompileUnitParser#express}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitObjectValueExpr(CompileUnitParser.ObjectValueExprContext ctx);
	/**
	 * Visit a parse tree produced by the {@code ppmmPreExpr}
	 * labeled alternative in {@link CompileUnitParser#express}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitPpmmPreExpr(CompileUnitParser.PpmmPreExprContext ctx);
	/**
	 * Visit a parse tree produced by the {@code simpleNameExpr}
	 * labeled alternative in {@link CompileUnitParser#express}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitSimpleNameExpr(CompileUnitParser.SimpleNameExprContext ctx);
	/**
	 * Visit a parse tree produced by the {@code anonmousFuncExpr}
	 * labeled alternative in {@link CompileUnitParser#express}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitAnonmousFuncExpr(CompileUnitParser.AnonmousFuncExprContext ctx);
	/**
	 * Visit a parse tree produced by the {@code notExpr}
	 * labeled alternative in {@link CompileUnitParser#express}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitNotExpr(CompileUnitParser.NotExprContext ctx);
	/**
	 * Visit a parse tree produced by the {@code varDeclarationExpr}
	 * labeled alternative in {@link CompileUnitParser#express}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitVarDeclarationExpr(CompileUnitParser.VarDeclarationExprContext ctx);
	/**
	 * Visit a parse tree produced by the {@code multiplyDivideExpr}
	 * labeled alternative in {@link CompileUnitParser#express}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitMultiplyDivideExpr(CompileUnitParser.MultiplyDivideExprContext ctx);
	/**
	 * Visit a parse tree produced by the {@code andOrExpr}
	 * labeled alternative in {@link CompileUnitParser#express}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitAndOrExpr(CompileUnitParser.AndOrExprContext ctx);
	/**
	 * Visit a parse tree produced by the {@code booleanValExpr}
	 * labeled alternative in {@link CompileUnitParser#express}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitBooleanValExpr(CompileUnitParser.BooleanValExprContext ctx);
	/**
	 * Visit a parse tree produced by the {@code enclosureExpr}
	 * labeled alternative in {@link CompileUnitParser#express}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitEnclosureExpr(CompileUnitParser.EnclosureExprContext ctx);
	/**
	 * Visit a parse tree produced by {@link CompileUnitParser#jsonFieldAssignValue}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitJsonFieldAssignValue(CompileUnitParser.JsonFieldAssignValueContext ctx);
	/**
	 * Visit a parse tree produced by {@link CompileUnitParser#parameters}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitParameters(CompileUnitParser.ParametersContext ctx);
	/**
	 * Visit a parse tree produced by {@link CompileUnitParser#parameter}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitParameter(CompileUnitParser.ParameterContext ctx);
	/**
	 * Visit a parse tree produced by {@link CompileUnitParser#compareOp}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitCompareOp(CompileUnitParser.CompareOpContext ctx);
	/**
	 * Visit a parse tree produced by {@link CompileUnitParser#block}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitBlock(CompileUnitParser.BlockContext ctx);
	/**
	 * Visit a parse tree produced by the {@code exprStatement}
	 * labeled alternative in {@link CompileUnitParser#statement}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitExprStatement(CompileUnitParser.ExprStatementContext ctx);
	/**
	 * Visit a parse tree produced by the {@code superStatement}
	 * labeled alternative in {@link CompileUnitParser#statement}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitSuperStatement(CompileUnitParser.SuperStatementContext ctx);
	/**
	 * Visit a parse tree produced by the {@code emptyStatement}
	 * labeled alternative in {@link CompileUnitParser#statement}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitEmptyStatement(CompileUnitParser.EmptyStatementContext ctx);
	/**
	 * Visit a parse tree produced by the {@code forStatement}
	 * labeled alternative in {@link CompileUnitParser#statement}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitForStatement(CompileUnitParser.ForStatementContext ctx);
	/**
	 * Visit a parse tree produced by the {@code forEachStatement}
	 * labeled alternative in {@link CompileUnitParser#statement}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitForEachStatement(CompileUnitParser.ForEachStatementContext ctx);
	/**
	 * Visit a parse tree produced by the {@code whileStatement}
	 * labeled alternative in {@link CompileUnitParser#statement}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitWhileStatement(CompileUnitParser.WhileStatementContext ctx);
	/**
	 * Visit a parse tree produced by the {@code breakStatement}
	 * labeled alternative in {@link CompileUnitParser#statement}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitBreakStatement(CompileUnitParser.BreakStatementContext ctx);
	/**
	 * Visit a parse tree produced by the {@code switchStatement}
	 * labeled alternative in {@link CompileUnitParser#statement}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitSwitchStatement(CompileUnitParser.SwitchStatementContext ctx);
	/**
	 * Visit a parse tree produced by the {@code selectStatement}
	 * labeled alternative in {@link CompileUnitParser#statement}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitSelectStatement(CompileUnitParser.SelectStatementContext ctx);
	/**
	 * Visit a parse tree produced by the {@code continueStatement}
	 * labeled alternative in {@link CompileUnitParser#statement}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitContinueStatement(CompileUnitParser.ContinueStatementContext ctx);
	/**
	 * Visit a parse tree produced by the {@code returnStatement}
	 * labeled alternative in {@link CompileUnitParser#statement}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitReturnStatement(CompileUnitParser.ReturnStatementContext ctx);
	/**
	 * Visit a parse tree produced by the {@code throwStatement}
	 * labeled alternative in {@link CompileUnitParser#statement}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitThrowStatement(CompileUnitParser.ThrowStatementContext ctx);
	/**
	 * Visit a parse tree produced by the {@code tryCatchFinallyStatement}
	 * labeled alternative in {@link CompileUnitParser#statement}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitTryCatchFinallyStatement(CompileUnitParser.TryCatchFinallyStatementContext ctx);
	/**
	 * Visit a parse tree produced by {@link CompileUnitParser#ifStatement}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitIfStatement(CompileUnitParser.IfStatementContext ctx);
	/**
	 * Visit a parse tree produced by {@link CompileUnitParser#switchBlock}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitSwitchBlock(CompileUnitParser.SwitchBlockContext ctx);
	/**
	 * Visit a parse tree produced by {@link CompileUnitParser#switchCase}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitSwitchCase(CompileUnitParser.SwitchCaseContext ctx);
	/**
	 * Visit a parse tree produced by {@link CompileUnitParser#tryBlock}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitTryBlock(CompileUnitParser.TryBlockContext ctx);
	/**
	 * Visit a parse tree produced by {@link CompileUnitParser#catchBlock}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitCatchBlock(CompileUnitParser.CatchBlockContext ctx);
	/**
	 * Visit a parse tree produced by {@link CompileUnitParser#finallyBlock}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitFinallyBlock(CompileUnitParser.FinallyBlockContext ctx);
	/**
	 * Visit a parse tree produced by {@link CompileUnitParser#functionDeclaration}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitFunctionDeclaration(CompileUnitParser.FunctionDeclarationContext ctx);
}